﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _17_Adapter
{
    /* 客户所期待的接口。 目标可以是具体的或抽象的类 也可以是接口 */
    class Target
    {
        public virtual void Request()
        {
            Console.WriteLine("普通请求!");
        }
    }

    /*需要适配的类*/
    class Adaptee
    {
        public void SpecificRequest()
        {
            Console.WriteLine("特殊请求!");
        }
    }

    /*通过包装一个对象 把源接口转换成目标接口*/
    class Adapter : Target
    {
        private Adaptee adaptee = new Adaptee();

        public override void Request()
        {
            adaptee.SpecificRequest();
        }
    }
}
